package Navigation;

import Page.MainPage.MainPage;
import javafx.scene.Scene;
import javafx.stage.Stage;
import java.util.Stack;

/**
 * @since 2024-06-01
 * @author yooo_fan
 * 应用全局跳转控制
 */
public class NavigationController {
    // 记录页面跳转
    private static final Stack<Scene> sceneStack = new Stack<>();

    private static Stage primaryStage = null;

    // 初始化控制器，获取页面引用
    public static void init(Stage primaryStage)
    {
        NavigationController.primaryStage = primaryStage;
        NavigationController.addScene(MainPage.getScene());
    }

    // 实现页面跳转,向栈中添加一个顶层页面
    static public void addScene(Scene scene)
    {
        NavigationController.sceneStack.add(scene);
        primaryStage.setScene(scene);
    }

    // 清空所有页面
    static public void clearPage(){
        NavigationController.sceneStack.clear();
        primaryStage.close();
    }

    // back,页面回退
    static public void back(){
        NavigationController.sceneStack.pop();
        primaryStage.setScene(NavigationController.sceneStack.lastElement());
    }

    // 获取最后一个场景
    public static Scene getLastScene() {
        return NavigationController.sceneStack.lastElement();
    }
}
